; 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=bdver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BDVER2
; 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]
;
; BDVER2-LABEL: test_cvtpd2pi:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    cvtpd2pi (%rdi), %mm1 # sched: [13:1.00]
; BDVER2-NEXT:    cvtpd2pi %xmm0, %mm0 # sched: [6:1.00]
; BDVER2-NEXT:    por %mm0, %mm1 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm1, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_cvtpi2pd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    cvtpi2pd (%rdi), %xmm1 # sched: [13:1.00]
; BDVER2-NEXT:    cvtpi2pd %mm0, %xmm0 # sched: [6:1.00]
; BDVER2-NEXT:    vaddpd %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_cvtpi2ps:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    cvtpi2ps (%rdi), %xmm1 # sched: [9:1.00]
; BDVER2-NEXT:    cvtpi2ps %mm0, %xmm0 # sched: [4:1.00]
; BDVER2-NEXT:    vaddps %xmm1, %xmm0, %xmm0 # sched: [5:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_cvtps2pi:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    cvtps2pi (%rdi), %mm1 # sched: [9:1.00]
; BDVER2-NEXT:    cvtps2pi %xmm0, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    por %mm0, %mm1 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm1, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_cvttpd2pi:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    cvttpd2pi (%rdi), %mm1 # sched: [13:1.00]
; BDVER2-NEXT:    cvttpd2pi %xmm0, %mm0 # sched: [6:1.00]
; BDVER2-NEXT:    por %mm0, %mm1 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm1, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_cvttps2pi:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    cvttps2pi (%rdi), %mm1 # sched: [9:1.00]
; BDVER2-NEXT:    cvttps2pi %xmm0, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    por %mm0, %mm1 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm1, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_emms:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    emms # sched: [2:0.50]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_maskmovq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    maskmovq %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_movd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movd %edi, %mm1 # sched: [10:0.50]
; BDVER2-NEXT:    movd (%rsi), %mm2 # sched: [5:0.50]
; BDVER2-NEXT:    paddd %mm1, %mm2 # sched: [2:0.50]
; BDVER2-NEXT:    paddd %mm2, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movd %mm2, %ecx # sched: [10:1.00]
; BDVER2-NEXT:    movd %mm0, %eax # sched: [10:1.00]
; BDVER2-NEXT:    movl %ecx, (%rsi) # sched: [1:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_movdq2q:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movdq2q %xmm0, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddd %mm0, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_movntq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movntq %mm0, (%rdi) # sched: [2:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_movq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movq (%rdi), %mm0 # sched: [5:0.50]
; BDVER2-NEXT:    paddd %mm0, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, (%rdi) # sched: [2:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_movq2dq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movq2dq %mm0, %xmm0 # sched: [2:0.50]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pabsb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pabsb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    pabsb %mm0, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pabsd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pabsd (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    pabsd %mm0, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pabsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pabsw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    pabsw %mm0, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_packssdw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    packssdw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    packssdw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_packsswb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    packsswb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    packsswb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_packuswb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    packuswb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    packuswb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddd %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddd (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddq %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddq (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddsb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddsb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddsb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddsw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddsw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddusb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddusb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddusb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddusw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddusw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddusw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_paddw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    paddw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    paddw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_palignr:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    palignr $1, %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    palignr $1, (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pand:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pand %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pand (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pandn:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pandn %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pandn (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pavgb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pavgb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pavgb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pavgw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pavgw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pavgw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pcmpeqb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pcmpeqb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pcmpeqb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pcmpeqd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pcmpeqd %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pcmpeqd (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pcmpeqw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pcmpeqw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pcmpeqw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pcmpgtb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pcmpgtb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pcmpgtb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pcmpgtd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pcmpgtd %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pcmpgtd (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pcmpgtw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pcmpgtw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pcmpgtw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pextrw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pextrw $0, %mm0, %eax # sched: [13:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_phaddd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    phaddd %mm1, %mm0 # sched: [5:0.50]
; BDVER2-NEXT:    phaddd (%rdi), %mm0 # sched: [10:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_phaddsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    phaddsw %mm1, %mm0 # sched: [5:0.50]
; BDVER2-NEXT:    phaddsw (%rdi), %mm0 # sched: [10:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_phaddw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    phaddw %mm1, %mm0 # sched: [5:0.50]
; BDVER2-NEXT:    phaddw (%rdi), %mm0 # sched: [10:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_phsubd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    phsubd %mm1, %mm0 # sched: [5:0.50]
; BDVER2-NEXT:    phsubd (%rdi), %mm0 # sched: [10:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_phsubsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    phsubsw %mm1, %mm0 # sched: [5:0.50]
; BDVER2-NEXT:    phsubsw (%rdi), %mm0 # sched: [10:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_phsubw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    phsubw %mm1, %mm0 # sched: [5:0.50]
; BDVER2-NEXT:    phsubw (%rdi), %mm0 # sched: [10:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pinsrw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movswl (%rsi), %eax # sched: [5:0.50]
; BDVER2-NEXT:    pinsrw $0, %edi, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pinsrw $1, %eax, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmaddwd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmaddwd %mm1, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    pmaddwd (%rdi), %mm0 # sched: [9:1.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmaddubsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmaddubsw %mm1, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    pmaddubsw (%rdi), %mm0 # sched: [9:1.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmaxsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmaxsw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pmaxsw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmaxub:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmaxub %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pmaxub (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pminsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pminsw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pminsw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pminub:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pminub %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pminub (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmovmskb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmovmskb %mm0, %eax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmulhrsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmulhrsw %mm1, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    pmulhrsw (%rdi), %mm0 # sched: [9:1.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmulhw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmulhw %mm1, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    pmulhw (%rdi), %mm0 # sched: [9:1.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmulhuw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmulhuw %mm1, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    pmulhuw (%rdi), %mm0 # sched: [9:1.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmullw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmullw %mm1, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    pmullw (%rdi), %mm0 # sched: [9:1.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pmuludq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pmuludq %mm1, %mm0 # sched: [4:1.00]
; BDVER2-NEXT:    pmuludq (%rdi), %mm0 # sched: [9:1.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_por:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    por %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    por (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psadbw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psadbw %mm1, %mm0 # sched: [4:0.50]
; BDVER2-NEXT:    psadbw (%rdi), %mm0 # sched: [9:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pshufb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pshufb %mm1, %mm0 # sched: [3:2.00]
; BDVER2-NEXT:    pshufb (%rdi), %mm0 # sched: [8:2.00]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5:1.00]
;
; BTVER2-LABEL: test_pshufb:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    pshufb %mm1, %mm0 # sched: [2:0.50]
; BTVER2-NEXT:    pshufb (%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_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]
;
; BDVER2-LABEL: test_pshufw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pshufw $0, (%rdi), %mm0 # mm0 = mem[0,0,0,0] sched: [7:0.50]
; BDVER2-NEXT:    pshufw $0, %mm0, %mm0 # mm0 = mm0[0,0,0,0] sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psignb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psignb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psignb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psignd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psignd %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psignd (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psignw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psignw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psignw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pslld:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pslld %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    pslld (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    pslld $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psllq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psllq %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    psllq (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    psllq $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psllw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psllw %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    psllw (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    psllw $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psrad:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psrad %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    psrad (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    psrad $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psraw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psraw %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    psraw (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    psraw $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psrld:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psrld %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    psrld (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    psrld $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psrlq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psrlq %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    psrlq (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    psrlq $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psrlw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psrlw %mm1, %mm0 # sched: [3:0.50]
; BDVER2-NEXT:    psrlw (%rdi), %mm0 # sched: [8:0.50]
; BDVER2-NEXT:    psrlw $7, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubd %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubd (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubq %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubq (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubsb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubsb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubsb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubsw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubsw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubusb:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubusb %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubusb (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubusw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubusw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubusw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_psubw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    psubw %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    psubw (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_punpckhbw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    punpckhbw %mm1, %mm0 # mm0 = mm0[4],mm1[4],mm0[5],mm1[5],mm0[6],mm1[6],mm0[7],mm1[7] sched: [2:0.50]
; BDVER2-NEXT:    punpckhbw (%rdi), %mm0 # mm0 = mm0[4],mem[4],mm0[5],mem[5],mm0[6],mem[6],mm0[7],mem[7] sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_punpckhdq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    punpckhdq %mm1, %mm0 # mm0 = mm0[1],mm1[1] sched: [2:0.50]
; BDVER2-NEXT:    punpckhdq (%rdi), %mm0 # mm0 = mm0[1],mem[1] sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_punpckhwd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    punpckhwd %mm1, %mm0 # mm0 = mm0[2],mm1[2],mm0[3],mm1[3] sched: [2:0.50]
; BDVER2-NEXT:    punpckhwd (%rdi), %mm0 # mm0 = mm0[2],mem[2],mm0[3],mem[3] sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_punpcklbw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    punpcklbw %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1],mm0[2],mm1[2],mm0[3],mm1[3] sched: [2:0.50]
; BDVER2-NEXT:    punpcklbw (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1],mm0[2],mem[2],mm0[3],mem[3] sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_punpckldq:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    punpckldq %mm1, %mm0 # mm0 = mm0[0],mm1[0] sched: [2:0.50]
; BDVER2-NEXT:    punpckldq (%rdi), %mm0 # mm0 = mm0[0],mem[0] sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_punpcklwd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    punpcklwd %mm1, %mm0 # mm0 = mm0[0],mm1[0],mm0[1],mm1[1] sched: [2:0.50]
; BDVER2-NEXT:    punpcklwd (%rdi), %mm0 # mm0 = mm0[0],mem[0],mm0[1],mem[1] sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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]
;
; BDVER2-LABEL: test_pxor:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    pxor %mm1, %mm0 # sched: [2:0.50]
; BDVER2-NEXT:    pxor (%rdi), %mm0 # sched: [7:0.50]
; BDVER2-NEXT:    movq %mm0, %rax # sched: [10:1.00]
; BDVER2-NEXT:    retq # sched: [5: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
