; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+ssse3 | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=atom | FileCheck %s --check-prefix=CHECK --check-prefix=ATOM
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=slm | FileCheck %s --check-prefix=CHECK --check-prefix=SLM
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=sandybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=ivybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=haswell | FileCheck %s --check-prefix=CHECK --check-prefix=HASWELL
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=broadwell | FileCheck %s --check-prefix=CHECK --check-prefix=BROADWELL
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx | FileCheck %s --check-prefix=CHECK --check-prefix=SKX
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=btver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BTVER2
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1

define i64 @test_cvtpd2pi(<2 x double> %a0, <2 x double>* %a1) optsize {
; GENERIC-LABEL: test_cvtpd2pi:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    cvtpd2pi (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    cvtpd2pi %xmm0, %mm1 # sched: [4:1.00]
; GENERIC-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_cvtpd2pi:
; ATOM:       # %bb.0:
; ATOM-NEXT:    cvtpd2pi (%rdi), %mm0 # sched: [8:4.00]
; ATOM-NEXT:    cvtpd2pi %xmm0, %mm1 # sched: [7:3.50]
; ATOM-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_cvtpd2pi:
; SLM:       # %bb.0:
; SLM-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [7:1.00]
; SLM-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [4:0.50]
; SLM-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SLM-NEXT:    movq %mm1, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_cvtpd2pi:
; SANDY:       # %bb.0:
; SANDY-NEXT:    cvtpd2pi (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    cvtpd2pi %xmm0, %mm1 # sched: [4:1.00]
; SANDY-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_cvtpd2pi:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    cvtpd2pi (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    cvtpd2pi %xmm0, %mm1 # sched: [4:1.00]
; HASWELL-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_cvtpd2pi:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [4:1.00]
; BROADWELL-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [9:1.00]
; BROADWELL-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; BROADWELL-NEXT:    movq %mm1, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_cvtpd2pi:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [5:1.00]
; SKYLAKE-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [11:1.00]
; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_cvtpd2pi:
; SKX:       # %bb.0:
; SKX-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [5:1.00]
; SKX-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [11:1.00]
; SKX-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKX-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_cvtpd2pi:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [8:1.00]
; BTVER2-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [3:1.00]
; BTVER2-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm1, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_cvtpd2pi:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [12:1.00]
; ZNVER1-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    por %mm0, %mm1 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.sse.cvtpd2pi(<2 x double> %a0)
  %2 = load <2 x double>, <2 x double> *%a1, align 16
  %3 = call x86_mmx @llvm.x86.sse.cvtpd2pi(<2 x double> %2)
  %4 = call x86_mmx @llvm.x86.mmx.por(x86_mmx %1, x86_mmx %3)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.sse.cvtpd2pi(<2 x double>) nounwind readnone

define <2 x double> @test_cvtpi2pd(x86_mmx %a0, x86_mmx* %a1) optsize {
; GENERIC-LABEL: test_cvtpi2pd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    cvtpi2pd %mm0, %xmm1 # sched: [4:1.00]
; GENERIC-NEXT:    cvtpi2pd (%rdi), %xmm0 # sched: [10:1.00]
; GENERIC-NEXT:    addpd %xmm1, %xmm0 # sched: [3:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_cvtpi2pd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    cvtpi2pd (%rdi), %xmm0 # sched: [8:4.00]
; ATOM-NEXT:    cvtpi2pd %mm0, %xmm1 # sched: [7:3.50]
; ATOM-NEXT:    addpd %xmm1, %xmm0 # sched: [6:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_cvtpi2pd:
; SLM:       # %bb.0:
; SLM-NEXT:    cvtpi2pd (%rdi), %xmm0 # sched: [7:1.00]
; SLM-NEXT:    cvtpi2pd %mm0, %xmm1 # sched: [4:0.50]
; SLM-NEXT:    addpd %xmm1, %xmm0 # sched: [3:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_cvtpi2pd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    cvtpi2pd %mm0, %xmm0 # sched: [4:1.00]
; SANDY-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [10:1.00]
; SANDY-NEXT:    vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_cvtpi2pd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    cvtpi2pd %mm0, %xmm0 # sched: [4:1.00]
; HASWELL-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [9:1.00]
; HASWELL-NEXT:    vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_cvtpi2pd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    cvtpi2pd (%rdi), %xmm0 # sched: [9:1.00]
; BROADWELL-NEXT:    cvtpi2pd %mm0, %xmm1 # sched: [4:1.00]
; BROADWELL-NEXT:    vaddpd %xmm0, %xmm1, %xmm0 # sched: [3:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_cvtpi2pd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    cvtpi2pd %mm0, %xmm0 # 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: [7:1.00]
;
; SKX-LABEL: test_cvtpi2pd:
; SKX:       # %bb.0:
; SKX-NEXT:    cvtpi2pd %mm0, %xmm0 # sched: [4:0.50]
; SKX-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [9:0.50]
; SKX-NEXT:    vaddpd %xmm1, %xmm0, %xmm0 # sched: [4:0.50]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_cvtpi2pd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [8:1.00]
; BTVER2-NEXT:    cvtpi2pd %mm0, %xmm0 # sched: [3:1.00]
; BTVER2-NEXT:    vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_cvtpi2pd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [12:1.00]
; ZNVER1-NEXT:    cvtpi2pd %mm0, %xmm0 # sched: [3:1.00]
; ZNVER1-NEXT:    vaddpd %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call <2 x double> @llvm.x86.sse.cvtpi2pd(x86_mmx %a0)
  %2 = load x86_mmx, x86_mmx *%a1, align 8
  %3 = call <2 x double> @llvm.x86.sse.cvtpi2pd(x86_mmx %2)
  %4 = fadd <2 x double> %1, %3
  ret <2 x double> %4
}
declare <2 x double> @llvm.x86.sse.cvtpi2pd(x86_mmx) nounwind readnone

define <4 x float> @test_cvtpi2ps(x86_mmx %a0, x86_mmx* %a1, <4 x float> %a2, <4 x float> %a3) optsize {
; GENERIC-LABEL: test_cvtpi2ps:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [3:1.00]
; GENERIC-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [9:1.00]
; GENERIC-NEXT:    addps %xmm1, %xmm0 # sched: [3:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_cvtpi2ps:
; ATOM:       # %bb.0:
; ATOM-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [5:5.00]
; ATOM-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [5:5.00]
; ATOM-NEXT:    addps %xmm1, %xmm0 # sched: [5:5.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_cvtpi2ps:
; SLM:       # %bb.0:
; SLM-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [7:1.00]
; SLM-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [4:0.50]
; SLM-NEXT:    addps %xmm1, %xmm0 # sched: [3:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_cvtpi2ps:
; SANDY:       # %bb.0:
; SANDY-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [3:1.00]
; SANDY-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [9:1.00]
; SANDY-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_cvtpi2ps:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [3:1.00]
; HASWELL-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [8:1.00]
; HASWELL-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_cvtpi2ps:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [3:1.00]
; BROADWELL-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [8:1.00]
; BROADWELL-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_cvtpi2ps:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [6:2.00]
; SKYLAKE-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [9:1.00]
; SKYLAKE-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [4:0.50]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_cvtpi2ps:
; SKX:       # %bb.0:
; SKX-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [6:2.00]
; SKX-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [9:1.00]
; SKX-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [4:0.50]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_cvtpi2ps:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [8:1.00]
; BTVER2-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [3:1.00]
; BTVER2-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_cvtpi2ps:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [12:1.00]
; ZNVER1-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [5:1.00]
; ZNVER1-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [3:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float> %a2, x86_mmx %a0)
  %2 = load x86_mmx, x86_mmx *%a1, align 8
  %3 = call <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float> %a3, x86_mmx %2)
  %4 = fadd <4 x float> %1, %3
  ret <4 x float> %4
}
declare <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float>, x86_mmx) nounwind readnone

define i64 @test_cvtps2pi(<4 x float> %a0, <4 x float>* %a1) optsize {
; GENERIC-LABEL: test_cvtps2pi:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [9:1.00]
; GENERIC-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; GENERIC-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_cvtps2pi:
; ATOM:       # %bb.0:
; ATOM-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [5:5.00]
; ATOM-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [5:5.00]
; ATOM-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm1, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_cvtps2pi:
; SLM:       # %bb.0:
; SLM-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [7:1.00]
; SLM-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [4:0.50]
; SLM-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SLM-NEXT:    movq %mm1, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_cvtps2pi:
; SANDY:       # %bb.0:
; SANDY-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [9:1.00]
; SANDY-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; SANDY-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_cvtps2pi:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [4:1.00]
; HASWELL-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [8:1.00]
; HASWELL-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; HASWELL-NEXT:    movq %mm1, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_cvtps2pi:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [4:1.00]
; BROADWELL-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [8:1.00]
; BROADWELL-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; BROADWELL-NEXT:    movq %mm1, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_cvtps2pi:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [5:1.00]
; SKYLAKE-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [9:0.50]
; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_cvtps2pi:
; SKX:       # %bb.0:
; SKX-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [5:1.00]
; SKX-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [9:0.50]
; SKX-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKX-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_cvtps2pi:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [8:1.00]
; BTVER2-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [3:1.00]
; BTVER2-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm1, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_cvtps2pi:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [12:1.00]
; ZNVER1-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    por %mm0, %mm1 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.sse.cvtps2pi(<4 x float> %a0)
  %2 = load <4 x float>, <4 x float> *%a1, align 16
  %3 = call x86_mmx @llvm.x86.sse.cvtps2pi(<4 x float> %2)
  %4 = call x86_mmx @llvm.x86.mmx.por(x86_mmx %1, x86_mmx %3)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.sse.cvtps2pi(<4 x float>) nounwind readnone

define i64 @test_cvttpd2pi(<2 x double> %a0, <2 x double>* %a1) optsize {
; GENERIC-LABEL: test_cvttpd2pi:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    cvttpd2pi (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    cvttpd2pi %xmm0, %mm1 # sched: [4:1.00]
; GENERIC-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_cvttpd2pi:
; ATOM:       # %bb.0:
; ATOM-NEXT:    cvttpd2pi (%rdi), %mm0 # sched: [8:4.00]
; ATOM-NEXT:    cvttpd2pi %xmm0, %mm1 # sched: [7:3.50]
; ATOM-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_cvttpd2pi:
; SLM:       # %bb.0:
; SLM-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [7:1.00]
; SLM-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [4:0.50]
; SLM-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SLM-NEXT:    movq %mm1, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_cvttpd2pi:
; SANDY:       # %bb.0:
; SANDY-NEXT:    cvttpd2pi (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    cvttpd2pi %xmm0, %mm1 # sched: [4:1.00]
; SANDY-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_cvttpd2pi:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    cvttpd2pi (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    cvttpd2pi %xmm0, %mm1 # sched: [4:1.00]
; HASWELL-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_cvttpd2pi:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [4:1.00]
; BROADWELL-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [9:1.00]
; BROADWELL-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; BROADWELL-NEXT:    movq %mm1, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_cvttpd2pi:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [5:1.00]
; SKYLAKE-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [11:1.00]
; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_cvttpd2pi:
; SKX:       # %bb.0:
; SKX-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [5:1.00]
; SKX-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [11:1.00]
; SKX-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKX-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_cvttpd2pi:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [8:1.00]
; BTVER2-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [3:1.00]
; BTVER2-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm1, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_cvttpd2pi:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [12:1.00]
; ZNVER1-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    por %mm0, %mm1 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.sse.cvttpd2pi(<2 x double> %a0)
  %2 = load <2 x double>, <2 x double> *%a1, align 16
  %3 = call x86_mmx @llvm.x86.sse.cvttpd2pi(<2 x double> %2)
  %4 = call x86_mmx @llvm.x86.mmx.por(x86_mmx %1, x86_mmx %3)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.sse.cvttpd2pi(<2 x double>) nounwind readnone

define i64 @test_cvttps2pi(<4 x float> %a0, <4 x float>* %a1) optsize {
; GENERIC-LABEL: test_cvttps2pi:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [9:1.00]
; GENERIC-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; GENERIC-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_cvttps2pi:
; ATOM:       # %bb.0:
; ATOM-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [5:5.00]
; ATOM-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [5:5.00]
; ATOM-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm1, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_cvttps2pi:
; SLM:       # %bb.0:
; SLM-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [7:1.00]
; SLM-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [4:0.50]
; SLM-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SLM-NEXT:    movq %mm1, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_cvttps2pi:
; SANDY:       # %bb.0:
; SANDY-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [9:1.00]
; SANDY-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; SANDY-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_cvttps2pi:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [4:1.00]
; HASWELL-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [8:1.00]
; HASWELL-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; HASWELL-NEXT:    movq %mm1, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_cvttps2pi:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [4:1.00]
; BROADWELL-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [8:1.00]
; BROADWELL-NEXT:    por %mm0, %mm1 # sched: [1:0.33]
; BROADWELL-NEXT:    movq %mm1, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_cvttps2pi:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [5:1.00]
; SKYLAKE-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [9:0.50]
; SKYLAKE-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_cvttps2pi:
; SKX:       # %bb.0:
; SKX-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [5:1.00]
; SKX-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [9:0.50]
; SKX-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; SKX-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_cvttps2pi:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [8:1.00]
; BTVER2-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [3:1.00]
; BTVER2-NEXT:    por %mm0, %mm1 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm1, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_cvttps2pi:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [12:1.00]
; ZNVER1-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    por %mm0, %mm1 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm1, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.sse.cvttps2pi(<4 x float> %a0)
  %2 = load <4 x float>, <4 x float> *%a1, align 16
  %3 = call x86_mmx @llvm.x86.sse.cvttps2pi(<4 x float> %2)
  %4 = call x86_mmx @llvm.x86.mmx.por(x86_mmx %1, x86_mmx %3)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.sse.cvttps2pi(<4 x float>) nounwind readnone

define void @test_emms() optsize {
; GENERIC-LABEL: test_emms:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    emms # sched: [31:10.33]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_emms:
; ATOM:       # %bb.0:
; ATOM-NEXT:    emms # sched: [5:2.50]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_emms:
; SLM:       # %bb.0:
; SLM-NEXT:    emms # sched: [10:5.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_emms:
; SANDY:       # %bb.0:
; SANDY-NEXT:    emms # sched: [31:10.33]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_emms:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    emms # sched: [31:10.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_emms:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    emms # sched: [31:10.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_emms:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    emms # sched: [10:4.50]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_emms:
; SKX:       # %bb.0:
; SKX-NEXT:    emms # sched: [10:4.50]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_emms:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    emms # sched: [2:0.50]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_emms:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    emms # sched: [2:0.25]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  call void @llvm.x86.mmx.emms()
  ret void
}
declare void @llvm.x86.mmx.emms()

define void @test_maskmovq(x86_mmx %a0, x86_mmx %a1, i8* %a2) optsize {
; GENERIC-LABEL: test_maskmovq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_maskmovq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_maskmovq:
; SLM:       # %bb.0:
; SLM-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_maskmovq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_maskmovq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_maskmovq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_maskmovq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_maskmovq:
; SKX:       # %bb.0:
; SKX-NEXT:    maskmovq %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_maskmovq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    maskmovq %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_maskmovq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    maskmovq %mm1, %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  call void @llvm.x86.mmx.maskmovq(x86_mmx %a0, x86_mmx %a1, i8* %a2)
  ret void
}
declare void @llvm.x86.mmx.maskmovq(x86_mmx, x86_mmx, i8*) nounwind

define i32 @test_movd(x86_mmx %a0, i32 %a1, i32 *%a2) {
; GENERIC-LABEL: test_movd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movd %edi, %mm1 # sched: [1:1.00]
; GENERIC-NEXT:    movd (%rsi), %mm2 # sched: [5:0.50]
; GENERIC-NEXT:    paddd %mm1, %mm2 # sched: [3:1.00]
; GENERIC-NEXT:    paddd %mm2, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    movd %mm2, %ecx # sched: [2:1.00]
; GENERIC-NEXT:    movd %mm0, %eax # sched: [2:1.00]
; GENERIC-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_movd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movd %edi, %mm1 # sched: [1:1.00]
; ATOM-NEXT:    movd (%rsi), %mm2 # sched: [1:1.00]
; ATOM-NEXT:    paddd %mm1, %mm2 # sched: [1:0.50]
; ATOM-NEXT:    paddd %mm2, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movd %mm2, %ecx # sched: [3:3.00]
; ATOM-NEXT:    movd %mm0, %eax # sched: [3:3.00]
; ATOM-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_movd:
; SLM:       # %bb.0:
; SLM-NEXT:    movd (%rsi), %mm2 # sched: [3:1.00]
; SLM-NEXT:    movd %edi, %mm1 # sched: [1:0.50]
; SLM-NEXT:    paddd %mm1, %mm2 # sched: [1:0.50]
; SLM-NEXT:    paddd %mm2, %mm0 # sched: [1:0.50]
; SLM-NEXT:    movd %mm2, %ecx # sched: [1:0.50]
; SLM-NEXT:    movd %mm0, %eax # sched: [1:0.50]
; SLM-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_movd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movd %edi, %mm1 # sched: [1:1.00]
; SANDY-NEXT:    movd (%rsi), %mm2 # sched: [5:0.50]
; SANDY-NEXT:    paddd %mm1, %mm2 # sched: [3:1.00]
; SANDY-NEXT:    paddd %mm2, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    movd %mm2, %ecx # sched: [2:1.00]
; SANDY-NEXT:    movd %mm0, %eax # sched: [2:1.00]
; SANDY-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_movd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movd %edi, %mm1 # sched: [1:1.00]
; HASWELL-NEXT:    movd (%rsi), %mm2 # sched: [5:0.50]
; HASWELL-NEXT:    paddd %mm1, %mm2 # sched: [1:0.50]
; HASWELL-NEXT:    paddd %mm2, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    movd %mm2, %ecx # sched: [1:1.00]
; HASWELL-NEXT:    movd %mm0, %eax # sched: [1:1.00]
; HASWELL-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_movd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movd %edi, %mm1 # sched: [1:1.00]
; BROADWELL-NEXT:    movd (%rsi), %mm2 # sched: [5:0.50]
; BROADWELL-NEXT:    paddd %mm1, %mm2 # sched: [1:0.50]
; BROADWELL-NEXT:    paddd %mm2, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    movd %mm2, %ecx # sched: [1:1.00]
; BROADWELL-NEXT:    movd %mm0, %eax # sched: [1:1.00]
; BROADWELL-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_movd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movd %edi, %mm1 # sched: [1:1.00]
; SKYLAKE-NEXT:    movd (%rsi), %mm2 # sched: [5:0.50]
; SKYLAKE-NEXT:    paddd %mm1, %mm2 # sched: [1:0.50]
; SKYLAKE-NEXT:    paddd %mm2, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    movd %mm2, %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: [7:1.00]
;
; SKX-LABEL: test_movd:
; SKX:       # %bb.0:
; SKX-NEXT:    movd %edi, %mm1 # sched: [1:1.00]
; SKX-NEXT:    movd (%rsi), %mm2 # sched: [5:0.50]
; SKX-NEXT:    paddd %mm1, %mm2 # sched: [1:0.50]
; SKX-NEXT:    paddd %mm2, %mm0 # sched: [1:0.50]
; SKX-NEXT:    movd %mm2, %ecx # sched: [2:1.00]
; SKX-NEXT:    movd %mm0, %eax # sched: [2:1.00]
; SKX-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_movd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movd %edi, %mm1 # sched: [8:0.50]
; BTVER2-NEXT:    movd (%rsi), %mm2 # sched: [5:1.00]
; BTVER2-NEXT:    paddd %mm1, %mm2 # sched: [1:0.50]
; BTVER2-NEXT:    paddd %mm2, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movd %mm2, %ecx # sched: [4:1.00]
; BTVER2-NEXT:    movd %mm0, %eax # sched: [4:1.00]
; BTVER2-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_movd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movd (%rsi), %mm2 # sched: [8:0.50]
; ZNVER1-NEXT:    movd %edi, %mm1 # sched: [3:1.00]
; ZNVER1-NEXT:    paddd %mm1, %mm2 # sched: [1:0.25]
; ZNVER1-NEXT:    paddd %mm2, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movd %mm2, %ecx # sched: [2:1.00]
; ZNVER1-NEXT:    movd %mm0, %eax # sched: [2:1.00]
; ZNVER1-NEXT:    movl %ecx, (%rsi) # sched: [1:0.50]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1  = insertelement <2 x i32> undef, i32 %a1, i32 0
  %2  = bitcast <2 x i32> %1 to x86_mmx
  %3  = load i32, i32 *%a2
  %4  = insertelement <2 x i32> undef, i32 %3, i32 0
  %5  = bitcast <2 x i32> %4 to x86_mmx
  %6  = call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %2, x86_mmx %5)
  %7  = call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %a0, x86_mmx %6)
  %8  = bitcast x86_mmx %6 to <2 x i32>
  %9  = bitcast x86_mmx %7 to <2 x i32>
  %10 = extractelement <2 x i32> %8, i32 0
  %11 = extractelement <2 x i32> %9, i32 0
  store i32 %10, i32* %a2
  ret i32 %11
}

define i64 @test_movdq2q(<2 x i64> %a0) optsize {
; GENERIC-LABEL: test_movdq2q:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:1.00]
; GENERIC-NEXT:    paddd %mm0, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_movdq2q:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movdq2q %xmm0, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_movdq2q:
; SLM:       # %bb.0:
; SLM-NEXT:    movdq2q %xmm0, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_movdq2q:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:1.00]
; SANDY-NEXT:    paddd %mm0, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_movdq2q:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:0.67]
; HASWELL-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_movdq2q:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:0.67]
; BROADWELL-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_movdq2q:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:1.00]
; SKYLAKE-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_movdq2q:
; SKX:       # %bb.0:
; SKX-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:1.00]
; SKX-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_movdq2q:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movdq2q %xmm0, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_movdq2q:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movdq2q %xmm0, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddd %mm0, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = extractelement <2 x i64> %a0, i32 0
  %2 = bitcast i64 %1 to x86_mmx
  %3 = call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %2, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}

define void @test_movntq(x86_mmx* %a0, x86_mmx %a1) optsize {
; GENERIC-LABEL: test_movntq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_movntq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_movntq:
; SLM:       # %bb.0:
; SLM-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_movntq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_movntq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_movntq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_movntq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_movntq:
; SKX:       # %bb.0:
; SKX-NEXT:    movntq %mm0, (%rdi) # sched: [1:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_movntq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movntq %mm0, (%rdi) # sched: [2:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_movntq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movntq %mm0, (%rdi) # sched: [1:0.50]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  call void @llvm.x86.mmx.movnt.dq(x86_mmx* %a0, x86_mmx %a1)
  ret void
}
declare void @llvm.x86.mmx.movnt.dq(x86_mmx*, x86_mmx) nounwind

define void @test_movq(i64 *%a0) {
; GENERIC-LABEL: test_movq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movq (%rdi), %mm0 # sched: [5:0.50]
; GENERIC-NEXT:    paddd %mm0, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    movq %mm0, (%rdi) # sched: [1:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_movq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movq (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, (%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_movq:
; SLM:       # %bb.0:
; SLM-NEXT:    movq (%rdi), %mm0 # sched: [3:1.00]
; SLM-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; SLM-NEXT:    movq %mm0, (%rdi) # sched: [1:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_movq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movq (%rdi), %mm0 # sched: [5:0.50]
; SANDY-NEXT:    paddd %mm0, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    movq %mm0, (%rdi) # sched: [1:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_movq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movq (%rdi), %mm0 # sched: [5:0.50]
; HASWELL-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    movq %mm0, (%rdi) # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_movq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movq (%rdi), %mm0 # sched: [5:0.50]
; BROADWELL-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    movq %mm0, (%rdi) # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_movq:
; SKYLAKE:       # %bb.0:
; 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: [7:1.00]
;
; SKX-LABEL: test_movq:
; SKX:       # %bb.0:
; SKX-NEXT:    movq (%rdi), %mm0 # sched: [5:0.50]
; SKX-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; SKX-NEXT:    movq %mm0, (%rdi) # sched: [1:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_movq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movq (%rdi), %mm0 # sched: [5:1.00]
; BTVER2-NEXT:    paddd %mm0, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, (%rdi) # sched: [2:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_movq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movq (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    paddd %mm0, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, (%rdi) # sched: [1:0.50]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = load i64, i64* %a0, align 8
  %2 = bitcast i64 %1 to x86_mmx
  %3 = call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %2, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  store i64 %4, i64* %a0, align 8
  ret void
}

define <2 x i64> @test_movq2dq(x86_mmx %a0) optsize {
; GENERIC-LABEL: test_movq2dq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:0.33]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_movq2dq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:0.50]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_movq2dq:
; SLM:       # %bb.0:
; SLM-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_movq2dq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:0.33]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_movq2dq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_movq2dq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_movq2dq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movq2dq %mm0, %xmm0 # sched: [2:2.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_movq2dq:
; SKX:       # %bb.0:
; SKX-NEXT:    movq2dq %mm0, %xmm0 # sched: [2:2.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_movq2dq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:0.50]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_movq2dq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movq2dq %mm0, %xmm0 # sched: [1:0.25]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = bitcast x86_mmx %a0 to i64
  %2 = insertelement <2 x i64> undef, i64 %1, i32 0
  ret <2 x i64> %2
}

define i64 @test_pabsb(x86_mmx *%a0) optsize {
; GENERIC-LABEL: test_pabsb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pabsb (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pabsb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pabsb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pabsb:
; SLM:       # %bb.0:
; SLM-NEXT:    pabsb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pabsb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pabsb (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pabsb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pabsb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pabsb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pabsb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pabsb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pabsb (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pabsb:
; SKX:       # %bb.0:
; SKX-NEXT:    pabsb (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pabsb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pabsb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pabsb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pabsb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    pabsb %mm0, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = load x86_mmx, x86_mmx *%a0, align 8
  %2 = call x86_mmx @llvm.x86.ssse3.pabs.b(x86_mmx %1)
  %3 = call x86_mmx @llvm.x86.ssse3.pabs.b(x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.pabs.b(x86_mmx) nounwind readnone

define i64 @test_pabsd(x86_mmx *%a0) optsize {
; GENERIC-LABEL: test_pabsd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pabsd (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pabsd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pabsd (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pabsd:
; SLM:       # %bb.0:
; SLM-NEXT:    pabsd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pabsd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pabsd (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pabsd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pabsd (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pabsd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pabsd (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pabsd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pabsd (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pabsd:
; SKX:       # %bb.0:
; SKX-NEXT:    pabsd (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pabsd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pabsd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pabsd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pabsd (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    pabsd %mm0, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = load x86_mmx, x86_mmx *%a0, align 8
  %2 = call x86_mmx @llvm.x86.ssse3.pabs.d(x86_mmx %1)
  %3 = call x86_mmx @llvm.x86.ssse3.pabs.d(x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.pabs.d(x86_mmx) nounwind readnone

define i64 @test_pabsw(x86_mmx *%a0) optsize {
; GENERIC-LABEL: test_pabsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pabsw (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pabsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pabsw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pabsw:
; SLM:       # %bb.0:
; SLM-NEXT:    pabsw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pabsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pabsw (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pabsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pabsw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pabsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pabsw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pabsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pabsw (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pabsw:
; SKX:       # %bb.0:
; SKX-NEXT:    pabsw (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pabsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pabsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pabsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pabsw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    pabsw %mm0, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = load x86_mmx, x86_mmx *%a0, align 8
  %2 = call x86_mmx @llvm.x86.ssse3.pabs.w(x86_mmx %1)
  %3 = call x86_mmx @llvm.x86.ssse3.pabs.w(x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.pabs.w(x86_mmx) nounwind readnone

define i64 @test_packssdw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_packssdw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    packssdw %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    packssdw (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_packssdw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    packssdw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    packssdw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_packssdw:
; SLM:       # %bb.0:
; SLM-NEXT:    packssdw %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    packssdw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_packssdw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    packssdw %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    packssdw (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_packssdw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    packssdw %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    packssdw (%rdi), %mm0 # sched: [7:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_packssdw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    packssdw %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    packssdw (%rdi), %mm0 # sched: [7:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_packssdw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    packssdw %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    packssdw (%rdi), %mm0 # sched: [7:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_packssdw:
; SKX:       # %bb.0:
; SKX-NEXT:    packssdw %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    packssdw (%rdi), %mm0 # sched: [7:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_packssdw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    packssdw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    packssdw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_packssdw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    packssdw %mm1, %mm0 # sched: [1:0.50]
; ZNVER1-NEXT:    packssdw (%rdi), %mm0 # sched: [1:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.packssdw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.packssdw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.packssdw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_packsswb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_packsswb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    packsswb %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    packsswb (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_packsswb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    packsswb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    packsswb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_packsswb:
; SLM:       # %bb.0:
; SLM-NEXT:    packsswb %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    packsswb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_packsswb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    packsswb %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    packsswb (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_packsswb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    packsswb %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    packsswb (%rdi), %mm0 # sched: [7:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_packsswb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    packsswb %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    packsswb (%rdi), %mm0 # sched: [7:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_packsswb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    packsswb %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    packsswb (%rdi), %mm0 # sched: [7:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_packsswb:
; SKX:       # %bb.0:
; SKX-NEXT:    packsswb %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    packsswb (%rdi), %mm0 # sched: [7:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_packsswb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    packsswb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    packsswb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_packsswb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    packsswb %mm1, %mm0 # sched: [1:0.50]
; ZNVER1-NEXT:    packsswb (%rdi), %mm0 # sched: [1:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.packsswb(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.packsswb(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.packsswb(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_packuswb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_packuswb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    packuswb %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    packuswb (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_packuswb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    packuswb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    packuswb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_packuswb:
; SLM:       # %bb.0:
; SLM-NEXT:    packuswb %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    packuswb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_packuswb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    packuswb %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    packuswb (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_packuswb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    packuswb %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    packuswb (%rdi), %mm0 # sched: [7:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_packuswb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    packuswb %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    packuswb (%rdi), %mm0 # sched: [7:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_packuswb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    packuswb %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    packuswb (%rdi), %mm0 # sched: [7:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_packuswb:
; SKX:       # %bb.0:
; SKX-NEXT:    packuswb %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    packuswb (%rdi), %mm0 # sched: [7:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_packuswb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    packuswb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    packuswb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_packuswb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    packuswb %mm1, %mm0 # sched: [1:0.50]
; ZNVER1-NEXT:    packuswb (%rdi), %mm0 # sched: [1:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.packuswb(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.packuswb(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.packuswb(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    paddb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddb:
; SLM:       # %bb.0:
; SLM-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    paddb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    paddb (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddb:
; SKX:       # %bb.0:
; SKX-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    paddb (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.padd.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.padd.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.padd.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddd %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    paddd (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddd (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddd:
; SLM:       # %bb.0:
; SLM-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddd %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    paddd (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddd (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddd (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    paddd (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddd:
; SKX:       # %bb.0:
; SKX-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    paddd (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddd %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddd %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddd (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.padd.d(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    paddq (%rdi), %mm0 # sched: [7:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddq %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    paddq (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddq:
; SLM:       # %bb.0:
; SLM-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddq (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    paddq (%rdi), %mm0 # sched: [7:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddq (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddq (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    paddq (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddq:
; SKX:       # %bb.0:
; SKX-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    paddq (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddq %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddq (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddq %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddq (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.padd.q(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.padd.q(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.padd.q(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddsb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddsb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddsb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    paddsb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddsb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddsb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddsb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddsb:
; SLM:       # %bb.0:
; SLM-NEXT:    paddsb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddsb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddsb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddsb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    paddsb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddsb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddsb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddsb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddsb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddsb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddsb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddsb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddsb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    paddsb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddsb:
; SKX:       # %bb.0:
; SKX-NEXT:    paddsb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    paddsb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddsb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddsb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddsb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddsb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddsb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddsb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.padds.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.padds.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.padds.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddsw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    paddsw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddsw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddsw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddsw:
; SLM:       # %bb.0:
; SLM-NEXT:    paddsw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddsw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddsw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    paddsw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddsw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddsw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddsw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddsw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddsw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    paddsw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddsw:
; SKX:       # %bb.0:
; SKX-NEXT:    paddsw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    paddsw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddsw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddsw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddsw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.padds.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.padds.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.padds.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddusb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddusb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddusb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    paddusb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddusb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddusb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddusb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddusb:
; SLM:       # %bb.0:
; SLM-NEXT:    paddusb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddusb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddusb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddusb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    paddusb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddusb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddusb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddusb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddusb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddusb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddusb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddusb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddusb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    paddusb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddusb:
; SKX:       # %bb.0:
; SKX-NEXT:    paddusb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    paddusb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddusb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddusb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddusb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddusb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddusb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddusb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.paddus.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.paddus.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.paddus.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddusw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddusw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddusw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    paddusw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddusw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddusw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddusw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddusw:
; SLM:       # %bb.0:
; SLM-NEXT:    paddusw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddusw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddusw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddusw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    paddusw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddusw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddusw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddusw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddusw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddusw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddusw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddusw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddusw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    paddusw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddusw:
; SKX:       # %bb.0:
; SKX-NEXT:    paddusw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    paddusw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddusw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddusw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddusw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddusw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddusw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddusw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.paddus.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.paddus.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.paddus.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_paddw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_paddw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    paddw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    paddw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_paddw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    paddw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_paddw:
; SLM:       # %bb.0:
; SLM-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    paddw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_paddw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    paddw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    paddw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_paddw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    paddw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_paddw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    paddw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_paddw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    paddw (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_paddw:
; SKX:       # %bb.0:
; SKX-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    paddw (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_paddw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    paddw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    paddw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_paddw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    paddw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    paddw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.padd.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.padd.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.padd.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_palignr(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_palignr:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_palignr:
; ATOM:       # %bb.0:
; ATOM-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:1.00]
; ATOM-NEXT:    palignr $1, (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_palignr:
; SLM:       # %bb.0:
; SLM-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    palignr $1, (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_palignr:
; SANDY:       # %bb.0:
; SANDY-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_palignr:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_palignr:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_palignr:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_palignr:
; SKX:       # %bb.0:
; SKX-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_palignr:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    palignr $1, (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_palignr:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    palignr $1, %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    palignr $1, (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.palignr.b(x86_mmx %a0, x86_mmx %a1, i8 1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.palignr.b(x86_mmx %1, x86_mmx %2, i8 1)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.palignr.b(x86_mmx, x86_mmx, i8) nounwind readnone

define i64 @test_pand(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pand:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pand %mm1, %mm0 # sched: [1:0.33]
; GENERIC-NEXT:    pand (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pand:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pand %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pand (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pand:
; SLM:       # %bb.0:
; SLM-NEXT:    pand %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pand (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pand:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pand %mm1, %mm0 # sched: [1:0.33]
; SANDY-NEXT:    pand (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pand:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pand %mm1, %mm0 # sched: [1:0.33]
; HASWELL-NEXT:    pand (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pand:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pand %mm1, %mm0 # sched: [1:0.33]
; BROADWELL-NEXT:    pand (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pand:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pand %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    pand (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pand:
; SKX:       # %bb.0:
; SKX-NEXT:    pand %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    pand (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pand:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pand %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pand (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pand:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pand %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pand (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pand(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pand(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pand(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pandn(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pandn:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pandn %mm1, %mm0 # sched: [1:0.33]
; GENERIC-NEXT:    pandn (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pandn:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pandn %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pandn (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pandn:
; SLM:       # %bb.0:
; SLM-NEXT:    pandn %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pandn (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pandn:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pandn %mm1, %mm0 # sched: [1:0.33]
; SANDY-NEXT:    pandn (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pandn:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pandn %mm1, %mm0 # sched: [1:0.33]
; HASWELL-NEXT:    pandn (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pandn:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pandn %mm1, %mm0 # sched: [1:0.33]
; BROADWELL-NEXT:    pandn (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pandn:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pandn %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    pandn (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pandn:
; SKX:       # %bb.0:
; SKX-NEXT:    pandn %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    pandn (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pandn:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pandn %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pandn (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pandn:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pandn %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pandn (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pandn(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pandn(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pandn(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pavgb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pavgb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pavgb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pavgb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pavgb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pavgb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pavgb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pavgb:
; SLM:       # %bb.0:
; SLM-NEXT:    pavgb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pavgb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pavgb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pavgb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pavgb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pavgb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pavgb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pavgb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pavgb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pavgb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pavgb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pavgb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pavgb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pavgb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pavgb:
; SKX:       # %bb.0:
; SKX-NEXT:    pavgb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pavgb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pavgb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pavgb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pavgb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pavgb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pavgb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pavgb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pavg.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pavg.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pavg.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pavgw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pavgw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pavgw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pavgw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pavgw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pavgw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pavgw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pavgw:
; SLM:       # %bb.0:
; SLM-NEXT:    pavgw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pavgw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pavgw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pavgw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pavgw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pavgw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pavgw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pavgw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pavgw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pavgw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pavgw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pavgw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pavgw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pavgw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pavgw:
; SKX:       # %bb.0:
; SKX-NEXT:    pavgw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pavgw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pavgw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pavgw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pavgw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pavgw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pavgw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pavgw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pavg.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pavg.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pavg.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pcmpeqb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pcmpeqb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pcmpeqb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pcmpeqb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pcmpeqb:
; SLM:       # %bb.0:
; SLM-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pcmpeqb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pcmpeqb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pcmpeqb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pcmpeqb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pcmpeqb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpeqb:
; SKX:       # %bb.0:
; SKX-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pcmpeqb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pcmpeqb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pcmpeqb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pcmpeq.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pcmpeq.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pcmpeq.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pcmpeqd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pcmpeqd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pcmpeqd %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pcmpeqd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pcmpeqd:
; SLM:       # %bb.0:
; SLM-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pcmpeqd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pcmpeqd %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pcmpeqd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pcmpeqd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pcmpeqd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpeqd:
; SKX:       # %bb.0:
; SKX-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pcmpeqd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pcmpeqd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pcmpeqd %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pcmpeq.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pcmpeq.d(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pcmpeq.d(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pcmpeqw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pcmpeqw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pcmpeqw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pcmpeqw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pcmpeqw:
; SLM:       # %bb.0:
; SLM-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pcmpeqw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pcmpeqw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pcmpeqw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pcmpeqw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pcmpeqw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpeqw:
; SKX:       # %bb.0:
; SKX-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pcmpeqw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pcmpeqw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pcmpeqw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pcmpeq.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pcmpeq.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pcmpeq.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pcmpgtb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pcmpgtb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pcmpgtb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pcmpgtb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pcmpgtb:
; SLM:       # %bb.0:
; SLM-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pcmpgtb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pcmpgtb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pcmpgtb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pcmpgtb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pcmpgtb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpgtb:
; SKX:       # %bb.0:
; SKX-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pcmpgtb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pcmpgtb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pcmpgtb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pcmpgt.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pcmpgt.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pcmpgt.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pcmpgtd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pcmpgtd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pcmpgtd %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pcmpgtd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pcmpgtd:
; SLM:       # %bb.0:
; SLM-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pcmpgtd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pcmpgtd %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pcmpgtd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pcmpgtd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pcmpgtd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpgtd:
; SKX:       # %bb.0:
; SKX-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pcmpgtd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pcmpgtd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pcmpgtd %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pcmpgt.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pcmpgt.d(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pcmpgt.d(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pcmpgtw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pcmpgtw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pcmpgtw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pcmpgtw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pcmpgtw:
; SLM:       # %bb.0:
; SLM-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pcmpgtw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pcmpgtw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pcmpgtw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pcmpgtw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pcmpgtw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pcmpgtw:
; SKX:       # %bb.0:
; SKX-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pcmpgtw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pcmpgtw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pcmpgtw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pcmpgt.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pcmpgt.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pcmpgt.w(x86_mmx, x86_mmx) nounwind readnone

define i32 @test_pextrw(x86_mmx %a0) optsize {
; GENERIC-LABEL: test_pextrw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pextrw $0, %mm0, %eax # sched: [3:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pextrw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pextrw $0, %mm0, %eax # sched: [4:2.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pextrw:
; SLM:       # %bb.0:
; SLM-NEXT:    pextrw $0, %mm0, %eax # sched: [1:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pextrw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pextrw $0, %mm0, %eax # sched: [3:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pextrw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pextrw $0, %mm0, %eax # sched: [2:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pextrw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pextrw $0, %mm0, %eax # sched: [2:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pextrw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pextrw $0, %mm0, %eax # sched: [3:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pextrw:
; SKX:       # %bb.0:
; SKX-NEXT:    pextrw $0, %mm0, %eax # sched: [3:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pextrw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pextrw $0, %mm0, %eax # sched: [3:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pextrw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pextrw $0, %mm0, %eax # sched: [2:2.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call i32 @llvm.x86.mmx.pextr.w(x86_mmx %a0, i32 0)
  ret i32 %1
}
declare i32 @llvm.x86.mmx.pextr.w(x86_mmx, i32) nounwind readnone

define i64 @test_phaddd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_phaddd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    phaddd %mm1, %mm0 # sched: [3:1.50]
; GENERIC-NEXT:    phaddd (%rdi), %mm0 # sched: [8:1.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_phaddd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    phaddd %mm1, %mm0 # sched: [3:1.50]
; ATOM-NEXT:    phaddd (%rdi), %mm0 # sched: [4:2.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_phaddd:
; SLM:       # %bb.0:
; SLM-NEXT:    phaddd %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    phaddd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_phaddd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    phaddd %mm1, %mm0 # sched: [3:1.50]
; SANDY-NEXT:    phaddd (%rdi), %mm0 # sched: [8:1.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phaddd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    phaddd %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    phaddd (%rdi), %mm0 # sched: [8:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_phaddd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    phaddd %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    phaddd (%rdi), %mm0 # sched: [8:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_phaddd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    phaddd %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    phaddd (%rdi), %mm0 # sched: [8:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_phaddd:
; SKX:       # %bb.0:
; SKX-NEXT:    phaddd %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    phaddd (%rdi), %mm0 # sched: [8:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_phaddd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    phaddd %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    phaddd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_phaddd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    phaddd %mm1, %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    phaddd (%rdi), %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.phadd.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.phadd.d(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.phadd.d(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_phaddsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_phaddsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    phaddsw %mm1, %mm0 # sched: [3:1.50]
; GENERIC-NEXT:    phaddsw (%rdi), %mm0 # sched: [8:1.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_phaddsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    phaddsw %mm1, %mm0 # sched: [5:2.50]
; ATOM-NEXT:    phaddsw (%rdi), %mm0 # sched: [6:3.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_phaddsw:
; SLM:       # %bb.0:
; SLM-NEXT:    phaddsw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    phaddsw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_phaddsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    phaddsw %mm1, %mm0 # sched: [3:1.50]
; SANDY-NEXT:    phaddsw (%rdi), %mm0 # sched: [8:1.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phaddsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    phaddsw %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    phaddsw (%rdi), %mm0 # sched: [8:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_phaddsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    phaddsw %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    phaddsw (%rdi), %mm0 # sched: [8:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_phaddsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    phaddsw %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    phaddsw (%rdi), %mm0 # sched: [8:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_phaddsw:
; SKX:       # %bb.0:
; SKX-NEXT:    phaddsw %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    phaddsw (%rdi), %mm0 # sched: [8:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_phaddsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    phaddsw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    phaddsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_phaddsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    phaddsw %mm1, %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    phaddsw (%rdi), %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.phadd.sw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.phadd.sw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.phadd.sw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_phaddw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_phaddw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    phaddw %mm1, %mm0 # sched: [3:1.50]
; GENERIC-NEXT:    phaddw (%rdi), %mm0 # sched: [8:1.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_phaddw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    phaddw %mm1, %mm0 # sched: [5:2.50]
; ATOM-NEXT:    phaddw (%rdi), %mm0 # sched: [6:3.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_phaddw:
; SLM:       # %bb.0:
; SLM-NEXT:    phaddw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    phaddw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_phaddw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    phaddw %mm1, %mm0 # sched: [3:1.50]
; SANDY-NEXT:    phaddw (%rdi), %mm0 # sched: [8:1.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phaddw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    phaddw %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    phaddw (%rdi), %mm0 # sched: [8:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_phaddw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    phaddw %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    phaddw (%rdi), %mm0 # sched: [8:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_phaddw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    phaddw %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    phaddw (%rdi), %mm0 # sched: [8:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_phaddw:
; SKX:       # %bb.0:
; SKX-NEXT:    phaddw %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    phaddw (%rdi), %mm0 # sched: [8:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_phaddw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    phaddw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    phaddw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_phaddw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    phaddw %mm1, %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    phaddw (%rdi), %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.phadd.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.phadd.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.phadd.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_phsubd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_phsubd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    phsubd %mm1, %mm0 # sched: [3:1.50]
; GENERIC-NEXT:    phsubd (%rdi), %mm0 # sched: [8:1.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_phsubd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    phsubd %mm1, %mm0 # sched: [3:1.50]
; ATOM-NEXT:    phsubd (%rdi), %mm0 # sched: [4:2.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_phsubd:
; SLM:       # %bb.0:
; SLM-NEXT:    phsubd %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    phsubd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_phsubd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    phsubd %mm1, %mm0 # sched: [3:1.50]
; SANDY-NEXT:    phsubd (%rdi), %mm0 # sched: [8:1.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phsubd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    phsubd %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    phsubd (%rdi), %mm0 # sched: [8:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_phsubd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    phsubd %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    phsubd (%rdi), %mm0 # sched: [8:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_phsubd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    phsubd %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    phsubd (%rdi), %mm0 # sched: [8:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_phsubd:
; SKX:       # %bb.0:
; SKX-NEXT:    phsubd %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    phsubd (%rdi), %mm0 # sched: [8:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_phsubd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    phsubd %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    phsubd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_phsubd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    phsubd %mm1, %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    phsubd (%rdi), %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.phsub.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.phsub.d(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.phsub.d(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_phsubsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_phsubsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    phsubsw %mm1, %mm0 # sched: [3:1.50]
; GENERIC-NEXT:    phsubsw (%rdi), %mm0 # sched: [8:1.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_phsubsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    phsubsw %mm1, %mm0 # sched: [5:2.50]
; ATOM-NEXT:    phsubsw (%rdi), %mm0 # sched: [6:3.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_phsubsw:
; SLM:       # %bb.0:
; SLM-NEXT:    phsubsw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    phsubsw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_phsubsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    phsubsw %mm1, %mm0 # sched: [3:1.50]
; SANDY-NEXT:    phsubsw (%rdi), %mm0 # sched: [8:1.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phsubsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    phsubsw %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    phsubsw (%rdi), %mm0 # sched: [8:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_phsubsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    phsubsw %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    phsubsw (%rdi), %mm0 # sched: [8:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_phsubsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    phsubsw %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    phsubsw (%rdi), %mm0 # sched: [8:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_phsubsw:
; SKX:       # %bb.0:
; SKX-NEXT:    phsubsw %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    phsubsw (%rdi), %mm0 # sched: [8:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_phsubsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    phsubsw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    phsubsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_phsubsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    phsubsw %mm1, %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    phsubsw (%rdi), %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.phsub.sw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.phsub.sw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.phsub.sw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_phsubw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_phsubw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    phsubw %mm1, %mm0 # sched: [3:1.50]
; GENERIC-NEXT:    phsubw (%rdi), %mm0 # sched: [8:1.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_phsubw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    phsubw %mm1, %mm0 # sched: [5:2.50]
; ATOM-NEXT:    phsubw (%rdi), %mm0 # sched: [6:3.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_phsubw:
; SLM:       # %bb.0:
; SLM-NEXT:    phsubw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    phsubw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_phsubw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    phsubw %mm1, %mm0 # sched: [3:1.50]
; SANDY-NEXT:    phsubw (%rdi), %mm0 # sched: [8:1.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_phsubw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    phsubw %mm1, %mm0 # sched: [3:2.00]
; HASWELL-NEXT:    phsubw (%rdi), %mm0 # sched: [8:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_phsubw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    phsubw %mm1, %mm0 # sched: [3:2.00]
; BROADWELL-NEXT:    phsubw (%rdi), %mm0 # sched: [8:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_phsubw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    phsubw %mm1, %mm0 # sched: [3:2.00]
; SKYLAKE-NEXT:    phsubw (%rdi), %mm0 # sched: [8:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_phsubw:
; SKX:       # %bb.0:
; SKX-NEXT:    phsubw %mm1, %mm0 # sched: [3:2.00]
; SKX-NEXT:    phsubw (%rdi), %mm0 # sched: [8:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_phsubw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    phsubw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    phsubw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_phsubw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    phsubw %mm1, %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    phsubw (%rdi), %mm0 # sched: [100:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.phsub.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.phsub.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.phsub.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pinsrw(x86_mmx %a0, i32 %a1, i16* %a2) optsize {
; GENERIC-LABEL: test_pinsrw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:1.00]
; GENERIC-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
; GENERIC-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pinsrw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pinsrw $0, %edi, %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movswl (%rsi), %eax # sched: [1:1.00]
; ATOM-NEXT:    pinsrw $1, %eax, %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pinsrw:
; SLM:       # %bb.0:
; SLM-NEXT:    movswl (%rsi), %eax # sched: [4:1.00]
; SLM-NEXT:    pinsrw $0, %edi, %mm0 # sched: [1:1.00]
; SLM-NEXT:    pinsrw $1, %eax, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pinsrw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:1.00]
; SANDY-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
; SANDY-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pinsrw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:2.00]
; HASWELL-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
; HASWELL-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:2.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pinsrw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:2.00]
; BROADWELL-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:2.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pinsrw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:2.00]
; SKYLAKE-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:2.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pinsrw:
; SKX:       # %bb.0:
; SKX-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:2.00]
; SKX-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
; SKX-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:2.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pinsrw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pinsrw $0, %edi, %mm0 # sched: [7:0.50]
; BTVER2-NEXT:    movswl (%rsi), %eax # sched: [4:1.00]
; BTVER2-NEXT:    pinsrw $1, %eax, %mm0 # sched: [7:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pinsrw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movswl (%rsi), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    pinsrw $0, %edi, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pinsrw $1, %eax, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pinsr.w(x86_mmx %a0, i32 %a1, i32 0)
  %2 = load i16, i16 *%a2, align 2
  %3 = sext i16 %2 to i32
  %4 = call x86_mmx @llvm.x86.mmx.pinsr.w(x86_mmx %1, i32 %3, i32 1)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.pinsr.w(x86_mmx, i32, i32) nounwind readnone

define i64 @test_pmaddwd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmaddwd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmaddwd %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    pmaddwd (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmaddwd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmaddwd %mm1, %mm0 # sched: [4:4.00]
; ATOM-NEXT:    pmaddwd (%rdi), %mm0 # sched: [4:4.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmaddwd:
; SLM:       # %bb.0:
; SLM-NEXT:    pmaddwd %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    pmaddwd (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmaddwd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmaddwd %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    pmaddwd (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmaddwd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmaddwd %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    pmaddwd (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmaddwd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmaddwd %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    pmaddwd (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmaddwd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmaddwd %mm1, %mm0 # sched: [4:1.00]
; SKYLAKE-NEXT:    pmaddwd (%rdi), %mm0 # sched: [9:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmaddwd:
; SKX:       # %bb.0:
; SKX-NEXT:    pmaddwd %mm1, %mm0 # sched: [4:1.00]
; SKX-NEXT:    pmaddwd (%rdi), %mm0 # sched: [9:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmaddwd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmaddwd %mm1, %mm0 # sched: [2:1.00]
; BTVER2-NEXT:    pmaddwd (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmaddwd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmaddwd %mm1, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    pmaddwd (%rdi), %mm0 # sched: [11:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmadd.wd(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmadd.wd(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmadd.wd(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pmaddubsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmaddubsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmaddubsw %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmaddubsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmaddubsw %mm1, %mm0 # sched: [4:4.00]
; ATOM-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [4:4.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmaddubsw:
; SLM:       # %bb.0:
; SLM-NEXT:    pmaddubsw %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmaddubsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmaddubsw %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmaddubsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmaddubsw %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmaddubsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmaddubsw %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmaddubsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmaddubsw %mm1, %mm0 # sched: [4:1.00]
; SKYLAKE-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [9:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmaddubsw:
; SKX:       # %bb.0:
; SKX-NEXT:    pmaddubsw %mm1, %mm0 # sched: [4:1.00]
; SKX-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [9:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmaddubsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmaddubsw %mm1, %mm0 # sched: [2:1.00]
; BTVER2-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmaddubsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmaddubsw %mm1, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [11:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.pmadd.ub.sw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.pmadd.ub.sw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.pmadd.ub.sw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pmaxsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmaxsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmaxsw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pmaxsw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmaxsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pmaxsw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmaxsw:
; SLM:       # %bb.0:
; SLM-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pmaxsw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmaxsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmaxsw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pmaxsw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmaxsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pmaxsw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmaxsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pmaxsw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmaxsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pmaxsw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmaxsw:
; SKX:       # %bb.0:
; SKX-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pmaxsw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmaxsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pmaxsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmaxsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmaxsw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pmaxsw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmaxs.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmaxs.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmaxs.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pmaxub(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmaxub:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmaxub %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pmaxub (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmaxub:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmaxub %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pmaxub (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmaxub:
; SLM:       # %bb.0:
; SLM-NEXT:    pmaxub %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pmaxub (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmaxub:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmaxub %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pmaxub (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmaxub:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmaxub %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pmaxub (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmaxub:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmaxub %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pmaxub (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmaxub:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmaxub %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pmaxub (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmaxub:
; SKX:       # %bb.0:
; SKX-NEXT:    pmaxub %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pmaxub (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmaxub:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmaxub %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pmaxub (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmaxub:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmaxub %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pmaxub (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmaxu.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmaxu.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmaxu.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pminsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pminsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pminsw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pminsw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pminsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pminsw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pminsw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pminsw:
; SLM:       # %bb.0:
; SLM-NEXT:    pminsw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pminsw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pminsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pminsw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pminsw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pminsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pminsw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pminsw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pminsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pminsw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pminsw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pminsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pminsw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pminsw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pminsw:
; SKX:       # %bb.0:
; SKX-NEXT:    pminsw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pminsw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pminsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pminsw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pminsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pminsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pminsw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pminsw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmins.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmins.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmins.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pminub(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pminub:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pminub %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    pminub (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pminub:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pminub %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pminub (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pminub:
; SLM:       # %bb.0:
; SLM-NEXT:    pminub %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pminub (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pminub:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pminub %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    pminub (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pminub:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pminub %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    pminub (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pminub:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pminub %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    pminub (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pminub:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pminub %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pminub (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pminub:
; SKX:       # %bb.0:
; SKX-NEXT:    pminub %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pminub (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pminub:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pminub %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pminub (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pminub:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pminub %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pminub (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pminu.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pminu.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pminu.b(x86_mmx, x86_mmx) nounwind readnone

define i32 @test_pmovmskb(x86_mmx %a0) optsize {
; GENERIC-LABEL: test_pmovmskb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmovmskb %mm0, %eax # sched: [1:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmovmskb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmovmskb %mm0, %eax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmovmskb:
; SLM:       # %bb.0:
; SLM-NEXT:    pmovmskb %mm0, %eax # sched: [4:1.00]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmovmskb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmovmskb %mm0, %eax # sched: [1:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmovmskb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmovmskb %mm0, %eax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmovmskb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmovmskb %mm0, %eax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmovmskb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmovmskb %mm0, %eax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmovmskb:
; SKX:       # %bb.0:
; SKX-NEXT:    pmovmskb %mm0, %eax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmovmskb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmovmskb %mm0, %eax # sched: [3:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmovmskb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmovmskb %mm0, %eax # sched: [1:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call i32 @llvm.x86.mmx.pmovmskb(x86_mmx %a0)
  ret i32 %1
}
declare i32 @llvm.x86.mmx.pmovmskb(x86_mmx) nounwind readnone

define i64 @test_pmulhrsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmulhrsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmulhrsw %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmulhrsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmulhrsw %mm1, %mm0 # sched: [4:4.00]
; ATOM-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [4:4.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmulhrsw:
; SLM:       # %bb.0:
; SLM-NEXT:    pmulhrsw %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmulhrsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmulhrsw %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmulhrsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmulhrsw %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmulhrsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmulhrsw %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmulhrsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmulhrsw %mm1, %mm0 # sched: [4:1.00]
; SKYLAKE-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmulhrsw:
; SKX:       # %bb.0:
; SKX-NEXT:    pmulhrsw %mm1, %mm0 # sched: [4:1.00]
; SKX-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmulhrsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmulhrsw %mm1, %mm0 # sched: [2:1.00]
; BTVER2-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmulhrsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmulhrsw %mm1, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [11:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.pmul.hr.sw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.pmul.hr.sw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.pmul.hr.sw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pmulhw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmulhw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmulhw %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    pmulhw (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmulhw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmulhw %mm1, %mm0 # sched: [4:4.00]
; ATOM-NEXT:    pmulhw (%rdi), %mm0 # sched: [4:4.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmulhw:
; SLM:       # %bb.0:
; SLM-NEXT:    pmulhw %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    pmulhw (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmulhw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmulhw %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    pmulhw (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmulhw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmulhw %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    pmulhw (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmulhw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmulhw %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    pmulhw (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmulhw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmulhw %mm1, %mm0 # sched: [4:1.00]
; SKYLAKE-NEXT:    pmulhw (%rdi), %mm0 # sched: [9:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmulhw:
; SKX:       # %bb.0:
; SKX-NEXT:    pmulhw %mm1, %mm0 # sched: [4:1.00]
; SKX-NEXT:    pmulhw (%rdi), %mm0 # sched: [9:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmulhw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmulhw %mm1, %mm0 # sched: [2:1.00]
; BTVER2-NEXT:    pmulhw (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmulhw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmulhw %mm1, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    pmulhw (%rdi), %mm0 # sched: [11:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmulh.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmulh.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmulh.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pmulhuw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmulhuw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmulhuw %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    pmulhuw (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmulhuw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmulhuw %mm1, %mm0 # sched: [4:4.00]
; ATOM-NEXT:    pmulhuw (%rdi), %mm0 # sched: [4:4.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmulhuw:
; SLM:       # %bb.0:
; SLM-NEXT:    pmulhuw %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    pmulhuw (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmulhuw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmulhuw %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    pmulhuw (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmulhuw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmulhuw %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    pmulhuw (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmulhuw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmulhuw %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    pmulhuw (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmulhuw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmulhuw %mm1, %mm0 # sched: [4:1.00]
; SKYLAKE-NEXT:    pmulhuw (%rdi), %mm0 # sched: [9:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmulhuw:
; SKX:       # %bb.0:
; SKX-NEXT:    pmulhuw %mm1, %mm0 # sched: [4:1.00]
; SKX-NEXT:    pmulhuw (%rdi), %mm0 # sched: [9:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmulhuw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmulhuw %mm1, %mm0 # sched: [2:1.00]
; BTVER2-NEXT:    pmulhuw (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmulhuw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmulhuw %mm1, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    pmulhuw (%rdi), %mm0 # sched: [11:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmulhu.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmulhu.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmulhu.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pmullw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmullw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmullw %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    pmullw (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmullw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmullw %mm1, %mm0 # sched: [4:4.00]
; ATOM-NEXT:    pmullw (%rdi), %mm0 # sched: [4:4.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmullw:
; SLM:       # %bb.0:
; SLM-NEXT:    pmullw %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    pmullw (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmullw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmullw %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    pmullw (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmullw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmullw %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    pmullw (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmullw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmullw %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    pmullw (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmullw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmullw %mm1, %mm0 # sched: [4:1.00]
; SKYLAKE-NEXT:    pmullw (%rdi), %mm0 # sched: [9:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmullw:
; SKX:       # %bb.0:
; SKX-NEXT:    pmullw %mm1, %mm0 # sched: [4:1.00]
; SKX-NEXT:    pmullw (%rdi), %mm0 # sched: [9:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmullw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmullw %mm1, %mm0 # sched: [2:1.00]
; BTVER2-NEXT:    pmullw (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmullw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmullw %mm1, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    pmullw (%rdi), %mm0 # sched: [11:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmull.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmull.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmull.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pmuludq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pmuludq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pmuludq %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    pmuludq (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pmuludq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pmuludq %mm1, %mm0 # sched: [4:4.00]
; ATOM-NEXT:    pmuludq (%rdi), %mm0 # sched: [4:4.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pmuludq:
; SLM:       # %bb.0:
; SLM-NEXT:    pmuludq %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    pmuludq (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pmuludq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pmuludq %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    pmuludq (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pmuludq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pmuludq %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    pmuludq (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pmuludq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pmuludq %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    pmuludq (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pmuludq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pmuludq %mm1, %mm0 # sched: [4:1.00]
; SKYLAKE-NEXT:    pmuludq (%rdi), %mm0 # sched: [9:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pmuludq:
; SKX:       # %bb.0:
; SKX-NEXT:    pmuludq %mm1, %mm0 # sched: [4:1.00]
; SKX-NEXT:    pmuludq (%rdi), %mm0 # sched: [9:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pmuludq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pmuludq %mm1, %mm0 # sched: [2:1.00]
; BTVER2-NEXT:    pmuludq (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pmuludq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pmuludq %mm1, %mm0 # sched: [4:1.00]
; ZNVER1-NEXT:    pmuludq (%rdi), %mm0 # sched: [11:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pmulu.dq(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pmulu.dq(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pmulu.dq(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_por(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_por:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; GENERIC-NEXT:    por (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_por:
; ATOM:       # %bb.0:
; ATOM-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    por (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_por:
; SLM:       # %bb.0:
; SLM-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    por (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_por:
; SANDY:       # %bb.0:
; SANDY-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; SANDY-NEXT:    por (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_por:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; HASWELL-NEXT:    por (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_por:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    por %mm1, %mm0 # sched: [1:0.33]
; BROADWELL-NEXT:    por (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_por:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    por (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_por:
; SKX:       # %bb.0:
; SKX-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    por (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_por:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    por %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    por (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_por:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    por %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    por (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.por(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.por(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.por(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psadbw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psadbw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psadbw %mm1, %mm0 # sched: [5:1.00]
; GENERIC-NEXT:    psadbw (%rdi), %mm0 # sched: [10:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psadbw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psadbw %mm1, %mm0 # sched: [4:2.00]
; ATOM-NEXT:    psadbw (%rdi), %mm0 # sched: [4:2.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psadbw:
; SLM:       # %bb.0:
; SLM-NEXT:    psadbw %mm1, %mm0 # sched: [4:1.00]
; SLM-NEXT:    psadbw (%rdi), %mm0 # sched: [7:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psadbw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psadbw %mm1, %mm0 # sched: [5:1.00]
; SANDY-NEXT:    psadbw (%rdi), %mm0 # sched: [10:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psadbw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psadbw %mm1, %mm0 # sched: [5:1.00]
; HASWELL-NEXT:    psadbw (%rdi), %mm0 # sched: [10:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psadbw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psadbw %mm1, %mm0 # sched: [5:1.00]
; BROADWELL-NEXT:    psadbw (%rdi), %mm0 # sched: [10:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psadbw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psadbw %mm1, %mm0 # sched: [3:1.00]
; SKYLAKE-NEXT:    psadbw (%rdi), %mm0 # sched: [8:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psadbw:
; SKX:       # %bb.0:
; SKX-NEXT:    psadbw %mm1, %mm0 # sched: [3:1.00]
; SKX-NEXT:    psadbw (%rdi), %mm0 # sched: [8:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psadbw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psadbw %mm1, %mm0 # sched: [2:0.50]
; BTVER2-NEXT:    psadbw (%rdi), %mm0 # sched: [7:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psadbw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psadbw %mm1, %mm0 # sched: [3:1.00]
; ZNVER1-NEXT:    psadbw (%rdi), %mm0 # sched: [10:1.00]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psad.bw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psad.bw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psad.bw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pshufb(x86_mmx %a0, x86_mmx %a1, x86_mmx *%a2) optsize {
; GENERIC-LABEL: test_pshufb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pshufb %mm1, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    pshufb (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pshufb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pshufb %mm1, %mm0 # sched: [1:1.00]
; ATOM-NEXT:    pshufb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pshufb:
; SLM:       # %bb.0:
; SLM-NEXT:    pshufb %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    pshufb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pshufb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pshufb %mm1, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    pshufb (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pshufb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pshufb %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    pshufb (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pshufb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pshufb %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    pshufb (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pshufb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pshufb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    pshufb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pshufb:
; SKX:       # %bb.0:
; SKX-NEXT:    pshufb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pshufb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pshufb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pshufb %mm1, %mm0 # sched: [2:2.00]
; BTVER2-NEXT:    pshufb (%rdi), %mm0 # sched: [7:2.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pshufb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pshufb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pshufb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.pshuf.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.pshuf.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.pshuf.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pshufw(x86_mmx *%a0) optsize {
; GENERIC-LABEL: test_pshufw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00]
; GENERIC-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pshufw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [1:1.00]
; ATOM-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pshufw:
; SLM:       # %bb.0:
; SLM-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [4:1.00]
; SLM-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pshufw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00]
; SANDY-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pshufw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00]
; HASWELL-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pshufw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00]
; BROADWELL-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pshufw:
; SKYLAKE:       # %bb.0:
; 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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pshufw:
; SKX:       # %bb.0:
; SKX-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00]
; SKX-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pshufw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [6:1.00]
; BTVER2-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pshufw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [8:0.50]
; ZNVER1-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = load x86_mmx, x86_mmx *%a0, align 8
  %2 = call x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx %1, i8 0)
  %3 = call x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx %2, i8 0)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx, i8) nounwind readnone

define i64 @test_psignb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psignb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    psignb (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psignb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psignb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psignb:
; SLM:       # %bb.0:
; SLM-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psignb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psignb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    psignb (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psignb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psignb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psignb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psignb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psignb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    psignb (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psignb:
; SKX:       # %bb.0:
; SKX-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    psignb (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psignb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psignb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psignb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psignb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psignb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psignb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.psign.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.psign.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.psign.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psignd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psignd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    psignd (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psignd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psignd (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psignd:
; SLM:       # %bb.0:
; SLM-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psignd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psignd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    psignd (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psignd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psignd (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psignd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psignd (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psignd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    psignd (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psignd:
; SKX:       # %bb.0:
; SKX-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    psignd (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psignd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psignd %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psignd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psignd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psignd %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psignd (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.psign.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.psign.d(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.psign.d(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psignw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psignw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; GENERIC-NEXT:    psignw (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psignw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psignw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psignw:
; SLM:       # %bb.0:
; SLM-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psignw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psignw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; SANDY-NEXT:    psignw (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psignw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psignw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psignw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psignw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psignw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    psignw (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psignw:
; SKX:       # %bb.0:
; SKX-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    psignw (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psignw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psignw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psignw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psignw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psignw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psignw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.ssse3.psign.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.ssse3.psign.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.ssse3.psign.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pslld(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pslld:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pslld %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    pslld (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    pslld $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pslld:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pslld %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    pslld (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    pslld $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pslld:
; SLM:       # %bb.0:
; SLM-NEXT:    pslld %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    pslld (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    pslld $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pslld:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pslld %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    pslld (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    pslld $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pslld:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pslld %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    pslld (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    pslld $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pslld:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pslld %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    pslld (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    pslld $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pslld:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pslld %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pslld:
; SKX:       # %bb.0:
; SKX-NEXT:    pslld %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    pslld (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    pslld $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pslld:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pslld %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pslld (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    pslld $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pslld:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pslld %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pslld (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    pslld $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psll.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psll.d(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.pslli.d(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psll.d(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.pslli.d(x86_mmx, i32) nounwind readnone

define i64 @test_psllq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psllq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psllq %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    psllq (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    psllq $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psllq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psllq %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psllq (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    psllq $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psllq:
; SLM:       # %bb.0:
; SLM-NEXT:    psllq %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    psllq (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    psllq $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psllq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psllq %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    psllq (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    psllq $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psllq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psllq %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    psllq (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    psllq $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psllq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psllq %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    psllq (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    psllq $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psllq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psllq %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psllq:
; SKX:       # %bb.0:
; SKX-NEXT:    psllq %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psllq (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    psllq $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psllq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psllq %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psllq (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    psllq $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psllq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psllq %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psllq (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    psllq $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psll.q(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psll.q(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.pslli.q(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psll.q(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.pslli.q(x86_mmx, i32) nounwind readnone

define i64 @test_psllw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psllw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psllw %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    psllw (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    psllw $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psllw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psllw %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psllw (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    psllw $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psllw:
; SLM:       # %bb.0:
; SLM-NEXT:    psllw %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    psllw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    psllw $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psllw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psllw %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    psllw (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    psllw $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psllw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psllw %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    psllw (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    psllw $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psllw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psllw %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    psllw (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    psllw $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psllw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psllw %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psllw:
; SKX:       # %bb.0:
; SKX-NEXT:    psllw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psllw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    psllw $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psllw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psllw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psllw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    psllw $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psllw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psllw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psllw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    psllw $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psll.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psll.w(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.pslli.w(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psll.w(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.pslli.w(x86_mmx, i32) nounwind readnone

define i64 @test_psrad(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psrad:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psrad %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    psrad (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    psrad $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psrad:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psrad %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psrad (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    psrad $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psrad:
; SLM:       # %bb.0:
; SLM-NEXT:    psrad %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    psrad (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    psrad $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psrad:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psrad %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    psrad (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    psrad $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psrad:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psrad %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    psrad (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    psrad $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psrad:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psrad %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    psrad (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    psrad $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psrad:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psrad %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psrad:
; SKX:       # %bb.0:
; SKX-NEXT:    psrad %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psrad (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    psrad $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psrad:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psrad %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psrad (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    psrad $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psrad:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psrad %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psrad (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    psrad $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psra.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psra.d(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.psrai.d(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psra.d(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.psrai.d(x86_mmx, i32) nounwind readnone

define i64 @test_psraw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psraw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psraw %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    psraw (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    psraw $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psraw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psraw %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psraw (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    psraw $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psraw:
; SLM:       # %bb.0:
; SLM-NEXT:    psraw %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    psraw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    psraw $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psraw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psraw %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    psraw (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    psraw $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psraw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psraw %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    psraw (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    psraw $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psraw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psraw %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    psraw (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    psraw $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psraw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psraw %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psraw:
; SKX:       # %bb.0:
; SKX-NEXT:    psraw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psraw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    psraw $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psraw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psraw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psraw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    psraw $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psraw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psraw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psraw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    psraw $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psra.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psra.w(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.psrai.w(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psra.w(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.psrai.w(x86_mmx, i32) nounwind readnone

define i64 @test_psrld(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psrld:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psrld %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    psrld (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    psrld $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psrld:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psrld %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psrld (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    psrld $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psrld:
; SLM:       # %bb.0:
; SLM-NEXT:    psrld %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    psrld (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    psrld $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psrld:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psrld %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    psrld (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    psrld $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psrld:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psrld %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    psrld (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    psrld $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psrld:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psrld %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    psrld (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    psrld $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psrld:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psrld %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psrld:
; SKX:       # %bb.0:
; SKX-NEXT:    psrld %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psrld (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    psrld $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psrld:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psrld %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psrld (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    psrld $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psrld:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psrld %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psrld (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    psrld $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psrl.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psrl.d(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.psrli.d(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psrl.d(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.psrli.d(x86_mmx, i32) nounwind readnone

define i64 @test_psrlq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psrlq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psrlq %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    psrlq (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    psrlq $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psrlq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psrlq %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psrlq (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    psrlq $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psrlq:
; SLM:       # %bb.0:
; SLM-NEXT:    psrlq %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    psrlq (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    psrlq $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psrlq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psrlq %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    psrlq (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    psrlq $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psrlq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psrlq %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    psrlq (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    psrlq $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psrlq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psrlq %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    psrlq (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    psrlq $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psrlq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psrlq %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psrlq:
; SKX:       # %bb.0:
; SKX-NEXT:    psrlq %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psrlq (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    psrlq $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psrlq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psrlq %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psrlq (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    psrlq $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psrlq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psrlq %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psrlq (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    psrlq $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psrl.q(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psrl.q(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.psrli.q(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psrl.q(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.psrli.q(x86_mmx, i32) nounwind readnone

define i64 @test_psrlw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psrlw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psrlw %mm1, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    psrlw (%rdi), %mm0 # sched: [6:1.00]
; GENERIC-NEXT:    psrlw $7, %mm0 # sched: [1:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psrlw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psrlw %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psrlw (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    psrlw $7, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psrlw:
; SLM:       # %bb.0:
; SLM-NEXT:    psrlw %mm1, %mm0 # sched: [1:1.00]
; SLM-NEXT:    psrlw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    psrlw $7, %mm0 # sched: [1:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psrlw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psrlw %mm1, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    psrlw (%rdi), %mm0 # sched: [6:1.00]
; SANDY-NEXT:    psrlw $7, %mm0 # sched: [1:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psrlw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psrlw %mm1, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    psrlw (%rdi), %mm0 # sched: [6:1.00]
; HASWELL-NEXT:    psrlw $7, %mm0 # sched: [1:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psrlw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psrlw %mm1, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    psrlw (%rdi), %mm0 # sched: [6:1.00]
; BROADWELL-NEXT:    psrlw $7, %mm0 # sched: [1:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psrlw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psrlw %mm1, %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:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psrlw:
; SKX:       # %bb.0:
; SKX-NEXT:    psrlw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psrlw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    psrlw $7, %mm0 # sched: [1:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psrlw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psrlw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psrlw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    psrlw $7, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psrlw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psrlw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psrlw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    psrlw $7, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psrl.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psrl.w(x86_mmx %1, x86_mmx %2)
  %4 = call x86_mmx @llvm.x86.mmx.psrli.w(x86_mmx %3, i32 7)
  %5 = bitcast x86_mmx %4 to i64
  ret i64 %5
}
declare x86_mmx @llvm.x86.mmx.psrl.w(x86_mmx, x86_mmx) nounwind readnone
declare x86_mmx @llvm.x86.mmx.psrli.w(x86_mmx, i32) nounwind readnone

define i64 @test_psubb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psubb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubb:
; SLM:       # %bb.0:
; SLM-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    psubb (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubb:
; SKX:       # %bb.0:
; SKX-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    psubb (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psub.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psub.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psub.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psubd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubd %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubd (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psubd (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubd:
; SLM:       # %bb.0:
; SLM-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubd (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubd %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubd (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubd (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubd (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    psubd (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubd:
; SKX:       # %bb.0:
; SKX-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    psubd (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubd %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubd (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubd %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubd (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psub.d(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psub.d(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psub.d(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psubq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubq %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubq (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubq %mm1, %mm0 # sched: [2:1.00]
; ATOM-NEXT:    psubq (%rdi), %mm0 # sched: [3:1.50]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubq:
; SLM:       # %bb.0:
; SLM-NEXT:    psubq %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubq (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubq %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubq (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubq %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubq (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubq %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubq (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubq:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubq %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    psubq (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubq:
; SKX:       # %bb.0:
; SKX-NEXT:    psubq %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    psubq (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubq %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubq (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubq %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubq (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psub.q(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psub.q(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psub.q(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psubsb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubsb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubsb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubsb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubsb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubsb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psubsb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubsb:
; SLM:       # %bb.0:
; SLM-NEXT:    psubsb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubsb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubsb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubsb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubsb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubsb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubsb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubsb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubsb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubsb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubsb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubsb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubsb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    psubsb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubsb:
; SKX:       # %bb.0:
; SKX-NEXT:    psubsb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psubsb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubsb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubsb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubsb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubsb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubsb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubsb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psubs.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psubs.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psubs.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psubsw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubsw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubsw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubsw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psubsw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubsw:
; SLM:       # %bb.0:
; SLM-NEXT:    psubsw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubsw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubsw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubsw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubsw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubsw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubsw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubsw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubsw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    psubsw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubsw:
; SKX:       # %bb.0:
; SKX-NEXT:    psubsw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psubsw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubsw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubsw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubsw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubsw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psubs.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psubs.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psubs.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psubusb(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubusb:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubusb %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubusb (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubusb:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubusb %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psubusb (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubusb:
; SLM:       # %bb.0:
; SLM-NEXT:    psubusb %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubusb (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubusb:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubusb %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubusb (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubusb:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubusb %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubusb (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubusb:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubusb %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubusb (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubusb:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubusb %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    psubusb (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubusb:
; SKX:       # %bb.0:
; SKX-NEXT:    psubusb %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psubusb (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubusb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubusb %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubusb (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubusb:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubusb %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubusb (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psubus.b(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psubus.b(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psubus.b(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psubusw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubusw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubusw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubusw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubusw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubusw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psubusw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubusw:
; SLM:       # %bb.0:
; SLM-NEXT:    psubusw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubusw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubusw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubusw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubusw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubusw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubusw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubusw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubusw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubusw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubusw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubusw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubusw %mm1, %mm0 # sched: [1:1.00]
; SKYLAKE-NEXT:    psubusw (%rdi), %mm0 # sched: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubusw:
; SKX:       # %bb.0:
; SKX-NEXT:    psubusw %mm1, %mm0 # sched: [1:1.00]
; SKX-NEXT:    psubusw (%rdi), %mm0 # sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubusw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubusw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubusw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubusw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubusw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubusw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psubus.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psubus.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psubus.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_psubw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_psubw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    psubw %mm1, %mm0 # sched: [3:1.00]
; GENERIC-NEXT:    psubw (%rdi), %mm0 # sched: [8:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_psubw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    psubw (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_psubw:
; SLM:       # %bb.0:
; SLM-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    psubw (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_psubw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    psubw %mm1, %mm0 # sched: [3:1.00]
; SANDY-NEXT:    psubw (%rdi), %mm0 # sched: [8:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_psubw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
; HASWELL-NEXT:    psubw (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_psubw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
; BROADWELL-NEXT:    psubw (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_psubw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    psubw (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_psubw:
; SKX:       # %bb.0:
; SKX-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    psubw (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_psubw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    psubw %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    psubw (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_psubw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    psubw %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    psubw (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.psub.w(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.psub.w(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.psub.w(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_punpckhbw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_punpckhbw:
; GENERIC:       # %bb.0:
; GENERIC-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]
; GENERIC-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]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_punpckhbw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    punpckhbw %mm1, %mm0 # mm0 = mm0[4],mm1[4],mm0[5],mm1[5],mm0[6],mm1[6],mm0[7],mm1[7] sched: [1:0.50]
; ATOM-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]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_punpckhbw:
; SLM:       # %bb.0:
; SLM-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]
; SLM-NEXT:    punpckhbw (%rdi), %mm0 # mm0 = mm0[4],mem[4],mm0[5],mem[5],mm0[6],mem[6],mm0[7],mem[7] sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_punpckhbw:
; SANDY:       # %bb.0:
; SANDY-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]
; SANDY-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]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_punpckhbw:
; HASWELL:       # %bb.0:
; HASWELL-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]
; HASWELL-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]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_punpckhbw:
; BROADWELL:       # %bb.0:
; BROADWELL-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]
; BROADWELL-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]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; 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: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_punpckhbw:
; SKX:       # %bb.0:
; SKX-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]
; SKX-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]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_punpckhbw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    punpckhbw %mm1, %mm0 # mm0 = mm0[4],mm1[4],mm0[5],mm1[5],mm0[6],mm1[6],mm0[7],mm1[7] sched: [1:0.50]
; BTVER2-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]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_punpckhbw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    punpckhbw %mm1, %mm0 # mm0 = mm0[4],mm1[4],mm0[5],mm1[5],mm0[6],mm1[6],mm0[7],mm1[7] sched: [1:0.25]
; ZNVER1-NEXT:    punpckhbw (%rdi), %mm0 # mm0 = mm0[4],mem[4],mm0[5],mem[5],mm0[6],mem[6],mm0[7],mem[7] sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.punpckhbw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.punpckhbw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.punpckhbw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_punpckhdq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_punpckhdq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:1.00]
; GENERIC-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_punpckhdq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:0.50]
; ATOM-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_punpckhdq:
; SLM:       # %bb.0:
; SLM-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:1.00]
; SLM-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_punpckhdq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:1.00]
; SANDY-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_punpckhdq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:1.00]
; HASWELL-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_punpckhdq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:1.00]
; BROADWELL-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; 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: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_punpckhdq:
; SKX:       # %bb.0:
; SKX-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:1.00]
; SKX-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_punpckhdq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:0.50]
; BTVER2-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_punpckhdq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [1:0.25]
; ZNVER1-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.punpckhdq(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.punpckhdq(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.punpckhdq(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_punpckhwd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_punpckhwd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
; GENERIC-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_punpckhwd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:0.50]
; ATOM-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_punpckhwd:
; SLM:       # %bb.0:
; SLM-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
; SLM-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_punpckhwd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
; SANDY-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_punpckhwd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
; HASWELL-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_punpckhwd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
; BROADWELL-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; 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: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_punpckhwd:
; SKX:       # %bb.0:
; SKX-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:1.00]
; SKX-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_punpckhwd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:0.50]
; BTVER2-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_punpckhwd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:0.25]
; ZNVER1-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.punpckhwd(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.punpckhwd(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.punpckhwd(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_punpcklbw(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_punpcklbw:
; GENERIC:       # %bb.0:
; GENERIC-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]
; GENERIC-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]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_punpcklbw:
; ATOM:       # %bb.0:
; ATOM-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]
; ATOM-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]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_punpcklbw:
; SLM:       # %bb.0:
; SLM-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]
; SLM-NEXT:    punpcklbw (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1],mm0[2],mem[2],mm0[3],mem[3] sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_punpcklbw:
; SANDY:       # %bb.0:
; SANDY-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]
; SANDY-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]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_punpcklbw:
; HASWELL:       # %bb.0:
; HASWELL-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]
; HASWELL-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]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_punpcklbw:
; BROADWELL:       # %bb.0:
; BROADWELL-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]
; BROADWELL-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]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; 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: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_punpcklbw:
; SKX:       # %bb.0:
; SKX-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]
; SKX-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]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_punpcklbw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    punpcklbw %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1],mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:0.50]
; BTVER2-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]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_punpcklbw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    punpcklbw %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1],mm0[2],mm1[2],mm0[3],mm1[3] sched: [1:0.25]
; ZNVER1-NEXT:    punpcklbw (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1],mm0[2],mem[2],mm0[3],mem[3] sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.punpcklbw(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.punpcklbw(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.punpcklbw(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_punpckldq(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_punpckldq:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
; GENERIC-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_punpckldq:
; ATOM:       # %bb.0:
; ATOM-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
; ATOM-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_punpckldq:
; SLM:       # %bb.0:
; SLM-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
; SLM-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_punpckldq:
; SANDY:       # %bb.0:
; SANDY-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
; SANDY-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_punpckldq:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
; HASWELL-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_punpckldq:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
; BROADWELL-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; 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: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_punpckldq:
; SKX:       # %bb.0:
; SKX-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:1.00]
; SKX-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_punpckldq:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:0.50]
; BTVER2-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_punpckldq:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [1:0.25]
; ZNVER1-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.punpckldq(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.punpckldq(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.punpckldq(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_punpcklwd(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_punpcklwd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
; GENERIC-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_punpcklwd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
; ATOM-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_punpcklwd:
; SLM:       # %bb.0:
; SLM-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
; SLM-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_punpcklwd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
; SANDY-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_punpcklwd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
; HASWELL-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_punpcklwd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
; BROADWELL-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; 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: [6:1.00]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_punpcklwd:
; SKX:       # %bb.0:
; SKX-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:1.00]
; SKX-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_punpcklwd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:0.50]
; BTVER2-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_punpcklwd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [1:0.25]
; ZNVER1-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.punpcklwd(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.punpcklwd(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.punpcklwd(x86_mmx, x86_mmx) nounwind readnone

define i64 @test_pxor(x86_mmx %a0, x86_mmx %a1, x86_mmx* %a2) optsize {
; GENERIC-LABEL: test_pxor:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    pxor %mm1, %mm0 # sched: [1:0.33]
; GENERIC-NEXT:    pxor (%rdi), %mm0 # sched: [6:0.50]
; GENERIC-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; GENERIC-NEXT:    retq # sched: [1:1.00]
;
; ATOM-LABEL: test_pxor:
; ATOM:       # %bb.0:
; ATOM-NEXT:    pxor %mm1, %mm0 # sched: [1:0.50]
; ATOM-NEXT:    pxor (%rdi), %mm0 # sched: [1:1.00]
; ATOM-NEXT:    movq %mm0, %rax # sched: [3:3.00]
; ATOM-NEXT:    retq # sched: [79:39.50]
;
; SLM-LABEL: test_pxor:
; SLM:       # %bb.0:
; SLM-NEXT:    pxor %mm1, %mm0 # sched: [1:0.50]
; SLM-NEXT:    pxor (%rdi), %mm0 # sched: [4:1.00]
; SLM-NEXT:    movq %mm0, %rax # sched: [1:0.50]
; SLM-NEXT:    retq # sched: [4:1.00]
;
; SANDY-LABEL: test_pxor:
; SANDY:       # %bb.0:
; SANDY-NEXT:    pxor %mm1, %mm0 # sched: [1:0.33]
; SANDY-NEXT:    pxor (%rdi), %mm0 # sched: [6:0.50]
; SANDY-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SANDY-NEXT:    retq # sched: [1:1.00]
;
; HASWELL-LABEL: test_pxor:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    pxor %mm1, %mm0 # sched: [1:0.33]
; HASWELL-NEXT:    pxor (%rdi), %mm0 # sched: [6:0.50]
; HASWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; HASWELL-NEXT:    retq # sched: [7:1.00]
;
; BROADWELL-LABEL: test_pxor:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    pxor %mm1, %mm0 # sched: [1:0.33]
; BROADWELL-NEXT:    pxor (%rdi), %mm0 # sched: [6:0.50]
; BROADWELL-NEXT:    movq %mm0, %rax # sched: [1:1.00]
; BROADWELL-NEXT:    retq # sched: [7:1.00]
;
; SKYLAKE-LABEL: test_pxor:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    pxor %mm1, %mm0 # sched: [1:0.50]
; SKYLAKE-NEXT:    pxor (%rdi), %mm0 # sched: [6:0.50]
; SKYLAKE-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKYLAKE-NEXT:    retq # sched: [7:1.00]
;
; SKX-LABEL: test_pxor:
; SKX:       # %bb.0:
; SKX-NEXT:    pxor %mm1, %mm0 # sched: [1:0.50]
; SKX-NEXT:    pxor (%rdi), %mm0 # sched: [6:0.50]
; SKX-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; SKX-NEXT:    retq # sched: [7:1.00]
;
; BTVER2-LABEL: test_pxor:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pxor %mm1, %mm0 # sched: [1:0.50]
; BTVER2-NEXT:    pxor (%rdi), %mm0 # sched: [6:1.00]
; BTVER2-NEXT:    movq %mm0, %rax # sched: [4:1.00]
; BTVER2-NEXT:    retq # sched: [4:1.00]
;
; ZNVER1-LABEL: test_pxor:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    pxor %mm1, %mm0 # sched: [1:0.25]
; ZNVER1-NEXT:    pxor (%rdi), %mm0 # sched: [8:0.50]
; ZNVER1-NEXT:    movq %mm0, %rax # sched: [2:1.00]
; ZNVER1-NEXT:    retq # sched: [1:0.50]
  %1 = call x86_mmx @llvm.x86.mmx.pxor(x86_mmx %a0, x86_mmx %a1)
  %2 = load x86_mmx, x86_mmx *%a2, align 8
  %3 = call x86_mmx @llvm.x86.mmx.pxor(x86_mmx %1, x86_mmx %2)
  %4 = bitcast x86_mmx %3 to i64
  ret i64 %4
}
declare x86_mmx @llvm.x86.mmx.pxor(x86_mmx, x86_mmx) nounwind readnone
